<?php
class Myblog_Form_ItemUpdate extends Zend_Form
{
public $formDecorators=array(
array('FormElements'),
array('Form'),
);
public $elementDecorators=array(
array('ViewHelper'),
array('Label'),
array('Errors'),
array('HtmlTag',array('dd'=>'span','dt'=>'span','class'=>'title')),
);
public $textDecorators=array(
array('ViewHelper'),
array('Errors'),
array('HtmlTag',array('dd'=>'div','class'=>'article')),
);
public $buttonDecorators=array(
array('ViewHelper'),
array('HtmlTag',array('dd'=>'p'))
);
public $selectDecorators=array(
array('ViewHelper'),
array('Label'),
array('Errors'),
array('HtmlTag',array('class'=>'selectadmin')),
);
public $authorDecorators=array(
array('ViewHelper'),
array('Label'),
array('Errors'),
array('HtmlTag',array('dt'=>'div','dd'=>'div','class'=>'author')),
);


	public function init()
	{

	$this->setAction('/admin/articles/update')
		->setMethod('post')
		->setOptions(array('class'=>'tundra'))
		->setName('editform')
		->setDecorators($this->formDecorators);

	$title=new Zend_Form_Element_Text('title');
	$title->setLabel('Заголовок:')
		->setOptions(array('size'=>'45','maxlength'=>'150','autocomplete'=>'on'))
		->setRequired(true)
		->addValidator('Regex',false,array('/^[a-zа-я \s \.\,\!\?-_]+$/iu','messages'=>'Имя автора содержит недопустимые символы'))
		->addFilter('StringTrim')
		->setDecorators($this->selectDecorators);

	$author=new Zend_Form_Element_Text('author');
	$author->setLabel('Автор статьи:')
		->setOptions(array('size'=>'30','maxlength'=>'60'))
		->setRequired(true)
		->addValidator('Regex',false,array('/^[a-zа-я \s]+$/iu','messages'=>'Имя автора содержит недопустимые символы'))
		->setDecorators($this->selectDecorators);

	$link=new Zend_Form_Element_Text('link');
	$link->setLabel('Ссылка на страницу:')
		->setOptions(array('size'=>'39','maxlength'=>'150'))
		->setRequired(true)
		->addValidator('Regex',false,array('/^[\w \/]+$/','messages'=>'Ссылка содержит недопустимые символы'))
		->addFilter('StringTrim')
		->setDecorators($this->selectDecorators);

	/*$image=new Zend_Form_Element_File('image');
	$image->setLabel('Картинка статьи:')
		->setDestination('images/articles')
		->addFilter('Rename',date('YmdHis').'.jpg',true)
		->addValidator('Extension',false,'jpg,gif,png')
		->addValidator('MimeType',false,'image/jpeg,image/gif,image/png')
		->addValidator('Size',false,90000)
		->addDecorator('HtmlTag',  array('tag' => 'div', 'class' => 'article','id'=>'upload'))
		->addDecorator('Label',  array('dt' => 'div', 'class' => 'article','id'=>'upload'));*/

	$created_dt=new Zend_Form_Element_Text('created_dt');
	$created_dt->setLabel('Дата создания:')
		->setOptions(array('size'=>'10'))
		->setRequired(true)
		->addFilter('HtmlEntities')
		->addFilter('StringTrim')
		->addValidator('Regex',false,array('/[\d-:\s]{19,19}/','messages'=>'Введенная дата не является корректной'))
		->setDecorators($this->selectDecorators);

	$category=new Zend_Form_Element_Select('category_name');
	$category->setLabel('Категория:')
		->setOptions(array('size'=>'1','length'=>'5','class'=>'select'))
		->setRequired(true)
		->addFilter('HtmlEntities')
		->addFilter('StringTrim')
		->setDecorators($this->selectDecorators);
	foreach($this->getCategories() as $c){
		$category->addMultiOption($c['category_name'],$c['category_name']);	
	}
	

	$article=new Zend_Form_Element_Textarea('article');
	$article->setOptions(array('width'=>'100%','height'=>'300px'))
		->setRequired(true)
		->setDecorators($this->textDecorators)
		->addValidator('NotEmpty');
		

	$page=new Zend_Form_Element_Select('page');
	$page->setLabel('Страница:')
		->setOptions(array('size'=>'1','length'=>'4','class'=>'selectadmin'))
		->setRequired(true)
		->addFilter('HtmlEntities')
		->addFilter('StringTrim')
		->setDecorators($this->selectDecorators);
	foreach($this->getPages() as $pages){
		$page->addMultiOption($pages['pages_url'],$pages['pages_name']);
	}

	$visibility=new Zend_Form_Element_Select('visibility');
	$visibility->setLabel('Видимость:')
		->setOptions(array('size'=>'1','length'=>'4'))
		->setRequired(true)
		->addFilter('HtmlEntities')
		->addFilter('StringTrim')
		->setDecorators($this->selectDecorators);
	foreach($this->getVisibility() as $v){
		$visibility->addMultiOption($v['visibility'],$v['title']);	
	}


	$submit=new Zend_Form_Element_Submit('submit');
	$submit->setLabel('Сохранить')
		->setOptions(array('class'=>'submit'))
		->addDecorator('HtmlTag',  array('tag' => 'div', 'class' => 'submitadmin'));

	$article_id=new Zend_Form_Element_Hidden('article_id');
	$article_id->addValidator('NotEmpty');
	

	$this->addElements(array($title,$author,$category,$page,$created_dt,$visibility,$link,$article_id,$article,$submit));	
	}
	public function getCategories()
	{
	$q=Doctrine_Query::create()
		->from('Myblog_Model_Categories c');
	return $q->fetchArray();
	}
	public function getPages()
	{
	$q=Doctrine_Query::create()
		->from('Myblog_Model_Pages c');
	return $q->fetchArray();
	}
	public function getVisibility()
	{
	$q=Doctrine_Query::create()
		->from('Myblog_Model_Visibility v');
	return $q->fetchArray();
	}
	
}
